package com.learn.springbootnetty.udpdemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * Udp协议发送数据
 * @author xiaodonghong
 * @description TODO
 * @date 2023/6/13-11:53
 */
public class SendMessageDemo2 {
    public static void main(String[] args) throws IOException {
        // 1.创建发送端的DatagramSocket对象(快递公司)
        // 在创建DatagramSocket对象的时候,我们可以利用空参构造什么都不传,利用随机的端口进行发送
        // 也可以给它指定一个端口
        // 细节:
        //      在创建DatagramSocket对象的时候,它还会去绑定对应的端口,
        //      那么在以后我们就是通过这个端口往外发送数据
        // 空参:如果说你是用空参的,那么此时它会在所有可用的端口中,随机一个进行使用
        // 有参:指定端口号进行绑定


        DatagramSocket datagramSocket = new DatagramSocket();
        // 获取InetAddress的对象,表示IP的对象
        InetAddress inetAddress = InetAddress.getByName("127.0.0.1");

        // 2.打包数据
        // 要发送的数据
        String str = "你好厉害呀";
        // 把字符串转为字节数组
        byte[] bytes = str.getBytes();
        // 指定端口
        int port = 10086;
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, inetAddress, port);
        datagramSocket.send(datagramPacket);
    }
}
